home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 34.zip
/
BS1 part 34
/
source code vol 1.adf
/
OTHERROUTS
/
SCROLL.S
Wrap
Text File
|
1999-09-26
|
3KB
|
141 lines
SCROLL10: SUBQ.W #4,COUNT2
BPL.L HITON
BSR PRINT10
MOVE.W #12,COUNT2
HITON: JSR WAIT
MOVE.L #$FFFFFFFF,$DFF044
MOVE.L #$7A140+520,$DFF050
MOVE.L #$7A140+520,$DFF054
MOVE.L #0,$DFF064
MOVE.W #2,$DFF042
MOVE.W #$49F0,$DFF040
MOVE.W #%0000101000011010,$DFF058
JSR WAIT
MOVE.L #$FFFFFFFF,$DFF044
MOVE.L #$7AB40+520,$DFF050
MOVE.L #$7AB40+520,$DFF054
MOVE.L #0,$DFF064
MOVE.W #2,$DFF042
MOVE.W #$49F0,$DFF040
MOVE.W #%0000101000011010,$DFF058
RTS
PRINT10: BSR GET_CHAR
RTS
WAIT: BTST #14,$DFF002
BNE WAIT
RTS
VHPOSR = $DFF006
DMACON = $DFF096
BLTCON0 = $DFF040
BLTCON1 = $DFF042
BLTAFWM = $DFF044
BLTALWM = $DFF046
BLTCPT = $DFF048
BLTBPT = $DFF04C
BLTAPT = $DFF050
BLTDPT = $DFF054
BLTSIZE = $DFF058
BLTCMOD = $DFF060
BLTBMOD = $DFF062
BLTAMOD = $DFF064
BLTDMOD = $DFF066
GET_CHAR:
SCR2CHR:LEA $79FFA,A2
MOVE.L A2,A1
SCR2C2: MOVE.L TEXTC2,A3
SCR2C1: MOVE.B (A3)+,D0
CMP.B #0,D0
BEQ.S SCR2RES
CMP.B #$0A,D0
BEQ.S SCR2BRK
GOONMAN:
BSR.S SCR2NO
ADD.L #2,A2
MOVE.L A2,A1
SCR2C3: MOVE.L A3,TEXTC2
RTS
SCR2RES:MOVE.L #TEXT4,TEXTC2
BRA.S SCR2C2
SCR2BRK:MOVE.B #$20,D0
BRA.S GOONMAN
SCR2NO: CMP.B #32,D0
BNE.S SCR2N0
MOVE.B #0,D0
BRA.S SCR2PUT
SCR2N0: CMP.B #47,D0
BCC.S SCR2N1
SUB.B #44,D0
BRA.S SCR2PUT
SCR2N1: CMP.B #59,D0
BCC.S SCR2N2
SUB.B #45,D0
BRA.S SCR2PUT
SCR2N2: CMP.B #91,D0
BCC.S SCR2N3
SUB.B #51,D0
SCR2PUT:BSR.S GETC4
SCR2N3: RTS
GETC4: MOVE.L #0,A0 ;CLEAR A0
CLR.L D1 ;AND D1
MOVE.B #20,D2 ;SET CMP START TO 10
MOVE.B D0,D1 ;GET D0 TO D1 (D0=CHAR)
MOVE.B #2,D3 ;NUMBER TO ADD.
GETC5: CMP.B D2,D0 ;CMP CHARS
BCS.S GETC6 ;RIGHT CHAR ????
SUB.B #20,D1 ;SUB TO GET <10 IN CHAR
ADD.L #640,A0 ;ADD. IN PLANE
ADD.B #20,D2 ;ADD. IN CMP
SUB.B #1,D3 ;SUB TIMES
BNE.S GETC5 ;END ???
RTS
GETC6: MULU #2,D1 ;MULTIP. 2*D1 TO D1
ADD.W D1,A0 ;ADD D1 AND A0 TO A0
ADD.L #CHAR2,A0 ;ADD CHAR ADR. AND A0 TO A0
MOVE.B #2,D3 ;NUMBER OF PLANES
GETC7: MOVE.W #38,D0 ;MODULO A
MOVE.W #50,D1 ;MODULO D
MOVE.W #%0000010000000001,D2 ;SET SIZE
BSR BLIT ;START BLITTER
ADD.L #1280,A0 ;ADD. SOURCE
ADD.L #2560,A1 ;ADD. DESTINATION
SUB.B #1,D3 ;SUB PLANES
BNE.S GETC7 ;NO MORE TIMES
RTS
****** BLITTER RUTINE ******
BLIT: BSR.S WFBL ;WAIT FOR BLITTER
MOVE.L A0,BLTAPT ;MOVE A0 TO SOURCE A
MOVE.W #$FFFF,BLTAFWM ;SET FIRST-WORD MASK.
MOVE.W #$FFFF,BLTALWM ;SET LAST-WORD MASK.
MOVE.W D0,BLTAMOD ;SET A MODULO
MOVE.L A1,BLTDPT ;MOVE A1 TO DESTINATION
MOVE.W D1,BLTDMOD ;SET D MODULO
MOVE.W #$09F0,BLTCON0 ;A-D ON. D=A
MOVE.W #$0000,BLTCON1 ;SET BLTCON1
MOVE.W D2,BLTSIZE ;SET SIZE AND START BLITTER
RTS
****** WAIT FOR BLITTER ******
WFBL: BTST #14,$DFF002 ;TEST BIT 14
BNE.S WFBL ;FINISHED! - RETURN
RTS
BREAK2: DC.B 0
EVEN
COUNT2: DC.W 0
TEXTC2: DC.L TEXT4
CHAR2: BLK.B 2560,0
TEXT4:
DC.B 'DETTE ER EN DEMO TIL EN SCROLL '
DC.B 0
EVEN
COUNT3: DC.W 0